package com.zhny.project.shell;

import java.io.IOException;

public interface IShellService {
    /**
     * 上传算法的shell文件,并且添加x权限
     * @param filePath shell临时文件
     * @param shellContent shell文件的内容
     * @param distDir 远程服务器shell文件的牡蛎
     * @param distFileName 上传到远程服务器的shell文件名
     * @return
     */
    boolean uploadShellFile(String filePath, String shellContent, String distDir, String distFileName) throws Exception;

    /**
     * 执行算法的shell文件
     * @param shellFilePath shell文件的全路径
     * @param resultFileRemotePath 算法结果存储文件
     * @return 执行成功true,执行失败false
     */
    boolean executeShell(String shellFilePath, String resultFileRemotePath) throws IOException;

    boolean executeShell(String shellFilePath) throws IOException;

    /**
     * 下载算法结果文件
     * @param resultDir 远程算法结果文件的全路径
     * @param resultFile 远程结果文件名
     * @param storeFilePath 下载到本地的结果文件的存储位置
     */
    void downResultFile(String resultDir, String resultFile, String storeFilePath);

    public String getResultPath();
    public String getShellPath();
}
